//字典是一种以键 - 值对形式存储数据的数据结构,就像电话号码簿里的名字和电话号码一 样。
// JavaScript 的 Object 类就是以字典的形式设计的。
// 本章将使用 Object 类本身的特性,实现 一个 Dictionary 类,让这种字典类型的对象使用起来更加简单。
// 你也可以只使用数组和 对象来实现本章展示的方法,但是定义一个 Dictionary 类更方便,也更有意思。

function print(x) {
    x = x ? x : "";
    console.log(x);
}
(function () {
    function Dictionary() {
        this.datastore = new Array();
        this.add = add;
        this.find = find;
        this.remove = remove;
        this.showAll = showAll;
    }

    function add(key, value) {
        this.datastore[key] = value;
    }

    function find(key) {
        return this.datastore[key];
    }

    function remove(key) {
        delete this.datastore[key];
    }

    function showAll() {
        var keys = Object.keys(this.datastore);
        for (var key in keys) {
            print(keys[key] + " -> " + this.datastore[keys[key]]);
        }
    }

    var pbook = new Dictionary();
    pbook.add("Mike", "123");
    pbook.add("David", "345");
    pbook.add("Cynthia", "456");
    print("David's extension: " + pbook.find("David"));
    pbook.remove("David");
    pbook.showAll();
}());

